
#include <string>
#ifndef WIN32
	#include <allocators>
#else
	#include <bits/allocator.h>
#endif

#include "CxType.h"

using std::string;


template<		typename _Type,
		template<	typename _Ty , typename _Ax = std::allocator<_Ty> > 
				class _StoreType >

class CxCommonBuffer
{
protected:
    size_t					m_maxbufsiz;
    _StoreType< _Type >		m_buffer;
public:

	CxCommonBuffer(size_t  _bufsiz):m_maxbufsiz(_bufsiz)
	{
	}
	virtual		~CxCommonBuffer(){}

public:

	virtual		_Type		Pop()=0;
	virtual		void		Push(const _Type & )=0;
	

	virtual		void		Clear()=0;
	virtual		bool		IsEmpty()const=0;
	virtual		bool		IsFull()const=0;

	virtual		string		BufferType()const=0;
};
